import { NextResponse } from 'next/server';
import { regionsDb as initialRegionsDb } from '../../regions/route';

// 创建一个本地副本，以便于修改
let regionsDb = [...initialRegionsDb];

// 获取单个地区
export async function GET(
  request: Request,
  { params }: { params: { id: string } }
) {
  try {
    const regionId = params.id;
    
    // 查找地区
    const region = regionsDb.find(r => r.id === regionId);
    
    if (!region) {
      return NextResponse.json(
        { error: '地区不存在' },
        { status: 404 }
      );
    }
    
    return NextResponse.json(region);
  } catch (error) {
    console.error('获取地区失败:', error);
    return NextResponse.json(
      { error: '获取地区失败' },
      { status: 500 }
    );
  }
}

// 更新地区
export async function PUT(
  request: Request,
  { params }: { params: { id: string } }
) {
  try {
    const regionId = params.id;
    const { name, color } = await request.json();
    
    // 查找地区
    const regionIndex = regionsDb.findIndex(r => r.id === regionId);
    
    if (regionIndex === -1) {
      return NextResponse.json(
        { error: '地区不存在' },
        { status: 404 }
      );
    }
    
    // 检查是否有其他地区已使用相同名称
    const existingRegion = regionsDb.find(r => r.name === name && r.id !== regionId);
    if (existingRegion) {
      return NextResponse.json(
        { error: '该地区名称已存在' },
        { status: 400 }
      );
    }
    
    // 更新地区
    regionsDb[regionIndex] = {
      ...regionsDb[regionIndex],
      name: name || regionsDb[regionIndex].name,
      color: color || regionsDb[regionIndex].color
    };
    
    return NextResponse.json({
      success: true,
      region: regionsDb[regionIndex]
    });
  } catch (error) {
    console.error('更新地区失败:', error);
    return NextResponse.json(
      { error: '更新地区失败' },
      { status: 500 }
    );
  }
}

// 删除地区
export async function DELETE(
  request: Request,
  { params }: { params: { id: string } }
) {
  try {
    const regionId = params.id;
    
    // 查找地区
    const regionIndex = regionsDb.findIndex(r => r.id === regionId);
    
    if (regionIndex === -1) {
      return NextResponse.json(
        { error: '地区不存在' },
        { status: 404 }
      );
    }
    
    // 删除地区
    regionsDb.splice(regionIndex, 1);
    
    return NextResponse.json({
      success: true,
      message: '地区已成功删除'
    });
  } catch (error) {
    console.error('删除地区失败:', error);
    return NextResponse.json(
      { error: '删除地区失败' },
      { status: 500 }
    );
  }
} 